using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GameBaseFramework.Pattern;
using GameUnityFramework.UIView;
using System;

namespace GameBaseFramework.FrameWorkCommand
{
    #region Command of UnityObjectManager 
    /// <summary>
    /// 新场景加载完毕
    /// </summary>
    public class NewSceneLoadedCommand : Command
    {

    }


    #endregion


    #region Command of UIViewManager

    /// <summary>
    /// UIView打开状态
    /// </summary>
    public enum EViewOpenType
    {
        /// <summary>
        /// 无需类型
        /// 一般用与挂在已有界面，当子界面
        /// </summary>
        None,
        /// <summary>
        /// 会关闭当前除了常驻的所有界面
        /// 再打开新界面
        /// </summary>
        Replace,
        /// <summary>
        /// 直接叠加在当前界面上
        /// </summary>
        Overlying,
        /// <summary>
        /// 常驻永久
        /// </summary>
        Forever
    }

    /// <summary>
    /// UIView优先级
    /// </summary>
    public enum EViewPriority
    {
        Level0,
        Level1,
        Level2,
        Level3,
        Max
    }
    /// <summary>
    /// 打开UI指令
    /// </summary>
    public class UIViewOpenCommand : Command
    {
        public object Data;
        public Transform Parent;
        public System.Type ViewType;
        public EViewOpenType ViewOpenType = EViewOpenType.Replace;
        public EViewPriority ViewPriority = EViewPriority.Level1;
    }

    /// <summary>
    /// 关闭所有UI指令
    /// </summary>
    public class CloseAllUIViewCommand : Command
    {
        public List<string> Exception;
    }

    /// <summary>
    /// 关闭指定UI指令
    /// </summary>
    public class UIViewCloseCommand : Command 
    {
        public UIViewBase UIViewBase;
    }

    /// <summary>
    /// 关闭指定泛型UI指令
    /// </summary>
    public class UIViewCloseTypeCommand : Command 
    {
        public Type UIViewType;
    }



    #endregion


}
